import auction.Auction
import auction.Bid
import auth.User
import auth.Userprofile

class BootStrap {

	def init = { servletContext ->
		
	Thread.start{
			org.h2.tools.Console.main()
		}
	
	
		/*
		 Die Userprofile 'jane' und 'robert' sowie die User 'u' und 'uu' werden erzeugt. Alle, in den Domains definierten, Attribute werden
		 mit Werten initialisiert. Den Usern werden die Userprofile als Attribut hinzugef�gt. Anschlie�end werden die
		 Objekte abgespeichert.
		  */
		
		def jane = new Userprofile(
			firstName:"Jane",
			lastName:"Doe",
			dateOfBirth:(new Date() - 365*30),
			gender:"F",
			address:"123 Main St",
			city:"Goose",
			state:"NC",
			zipcode:"12345",
			email:"meinnameistvergeben@googlemail.com")
		
		
		def u = new User(
			login:"User123",
			password:"password123".encodeAsPassword(),
			role:"admin",
			profile:jane
			)
		u.save()
		if(u.hasErrors()){
			println u.errors
		}
		

		
		def robert = new Userprofile(
			firstName:"Robert",
			lastName:"Krombholz",
			dateOfBirth:(new Date() - 365*30),
			gender:"M",
			address:"hinterm wald",
			city:"g�rtringe",
			state:"NC",
			zipcode:"12345",
			email:"meinnameistvergeben@googlemail.com")
		//robert.save()
		

		
		def uu = new User(
			login:"User321",
			password:"password321".encodeAsPassword(),
			role:"user",
			profile:robert)
		uu.save()
		if(uu.hasErrors()){
			println uu.errors
		}
		
		/*
		Ein neues Gebot wird erzeugt und das Gebot mit einem Startwert versehen.
		*/

	   def bid = new auction.Bid(
			   bidAmount: 200.98,
			   user: u)

	   /*
		Die Auktion 'com' und der User 'uu' werden zu dem Gebot 'bid' hinzugef�gt. Anschlie�end werden 'com' und 'uu' gespeichert.
		*/

	   def bid2 = new auction.Bid(
			   bidAmount: 99.0,
			   user: uu)
	   if(bid2.hasErrors()){
		   println bid2.errors
	   }

		
		/*
		 Die Auktionen 'com' und 'comold' werden erzeugt. Alle, in der Domain definierten, Attribute werden
		 mit Werten initialisiert. Den Auktionen werden die User als Attribut hinzugef�gt.
		 Anschlie�end werden die Objekte abgespeichert.
		 */
		
		def com = new auction.Auction(
			heading:"New Computer",
			startDate:(new Date()),
			description:"Super high-end neuer Computer von HP",
				   filename:"computer01.jpg",
			startprice: 10.0,
			endDate: (new Date()+1),
			user:u)//.addToBids(bid2)
		com.save()
		
		def bat = new auction.Auction(
			heading:"Baseball bat",
			startDate:(new Date()-6),
			description:"Perfect tool for destroying old and new computers!",
				   filename:"hat.jpg",
			startprice: 100.0,
			endDate: (new Date()+3),
			user:uu)//.addToBids(bid)
		bat.save()
		if(bat.hasErrors()){
			println u.errors
		}
		
		
		def comold = new auction.Auction(
			heading:"Old Computer",
			startDate:(new Date() - 6),
			description:"Alter Computer von HP",
			filename:"computer02.jpg",
			startprice: 10.0,
			endDate: (new Date()+3),
			user:u)
		comold.save()

	def com1 = new auction.Auction(
			heading:"Hello Kitty Tasche",
			startDate:(new Date()),
			description:"Süße Hello-Kitty Tasche !",
			filename:"tasche.jpg",
			startprice: 5.0,
			endDate: (new Date()+1),
			user:u)//.addToBids(bid2)
		com1.save()
		
		def com3 = new auction.Auction(
			heading:"Katzenbaum",
			startDate:(new Date()),
			description:"Ein Paradies für Ihre Katze(n) - der Riesen-XXL-Katzenkratzbaum in beige mit Tatzenmuster!",
			filename:"katzenbaum.jpg",
			startprice: 50.0,
			endDate: (new Date()+3),
			user:u)//.addToBids(bid2)
		com3.save()
		
		def com4 = new auction.Auction(
			heading:"Schicke Schuhe",
			startDate:(new Date()),
			description:"High Heels Korkabsatz by Primark Schleife Größe 36 NEU!",
			filename:"schuhe01.jpg",
			startprice: 50.0,
			endDate: (new Date()+3),
			user:u)//.addToBids(bid2)
		com4.save()
		
		def com5 = new auction.Auction(
			heading:"Tolles komplettes Kochset",
			startDate:(new Date()),
			description:"Für tolle Kochabende !",
			filename:"kochset.jpg",
			startprice: 50.0,
			endDate: (new Date()+3),
			user:uu)//.addToBids(bid2)
		com4.save()

		
		
		
	}
	def destroy = {
	}
}

